When a team member is added
Table of Contents
Dzięki temu nowemu wyzwalaczowi możesz dodać nowy poziom governance dla swoich Microsoft Teams. Zwłaszcza, gdy mówimy o wdrażaniu nowych użytkowników lub innych zautomatyzowanych procesach dla nowo dodanych członków zespołów.
Krok po kroku
Wyzwalacz nie specjalnie skomplikowany. By go użyć utwórz nowy przepływ, użyj wyzwalacza z grupy Microsoft Teams, wybierz zespół, który przepływ powinien monitorować i to wszystko.
Uwaga: jedyną zwracaną informacją przez ten wyzwalacz jest User Id – id dodanego użytkownika.
Teraz to, co zrobisz po uruchomieniu przepływu, zależy już wyłącznie od Ciebie. Pozwól, że opiszę mój scenariusz, mam nadzieję, że będzie dla Ciebie inspirujący:
- Użytkownik zostaje dodany do zespołu, który posiada kanały publiczne i prywatne.
- Zanim użytkownik zostanie dodany do kanałów prywatnych, musi zaakceptować reguły NDA.
- Aby zostać dodanym do kanałów prywatnych, po dodaniu go do zespołu, proces wysyła mu Adaptive Card ze wszystkimi informacjami plus przycisk do wyrażenia potwierdzenia (lub nie).
- Jeśli potwierdzi, flow wysyła POST do Microsoft Graph API i automatycznie dodaje użytkownika do określonego kanału prywatnego.
I to wszystko. Obejrzyj screencast, w którym szczegółowo opisuję scenariusz:
Zapytania do Graph API
Aby wywołać endpoint interfejsu Microsoft Graph API, w celu dodania użytkownika do kanału prywatnego, używam następującego URI:
https://graph.microsoft.com/beta/teams/[TEAM ID]/channels/[CHANNEL ID]/members/
Treść żądania POST jest następująca:
{ "@odata.type": "#microsoft.graph.aadUserConversationMember", "roles": [ "member" ], "user@odata.bind": "https://graph.microsoft.com/beta/users/[USER ID Z TIRGGERA]" }
Opisane podejście jest oparte o dokumentację wersji beta serwisu Graph API: https://docs.microsoft.com/en-us/graph/api/conversationmember-add?view=graph-rest-beta&tabs=http.
Aby skonfigurować uwierzytelnianie, musisz zarejestrować nową aplikację w usłudze Azure AD, która powinna posiadać następujące uprawnienia (i zgodę administratora na nie). Najlepiej na poziomie aplikacji:
- ChannelMember.ReadWrite.All,
- Group.ReadWrite.All,
- Directory.ReadWrite.All
Adaptive Cards…
Wszystkie karty, jakich użyłem w swoim rozwiązaniu zbudowałem używając https://adaptivecards.io/designer. Jeśli interesuje Cię sama technologia, zobacz moje inne posty: Odczyt odpowiedzi z własnej Adaptive Cards wysłanej przez Power Automate do Teams.
I to wszystko! Dziękuję! Jeśli masz jakieś pytania, zostaw je w komentarzach poniżej.